Various forms of image compression have been devised to compress sets of still images for storage and/or transmission, including various versions of the Joint Photographic Experts Group (JPEG) specification promulgated by the International Organization for Standardization and the International Electrotechnical Commission (ISO/IEC). Image compressors conforming to this specification and/or similar specifications compress multiple still images through a combination of discrete-cosine transform (DCT), quantization and entropy encoding into a single image bitstream of coefficients representing blocks of pixels of each still image in the frequency domain.
Unfortunately, to achieve a relatively high degree of compression, such image bitstreams are usually organized in a manner that prohibits accessing and decoding of only one of the still images selected along its length at any location other than at its beginning. More simply, such image bitstreams are architected to require sequential accessing and decoding of the still images starting at the beginning, and not to enable “random” accesses at various points therealong.
The locations of the first coefficient(s) of each of the images typically do not start at regular or otherwise predictable intervals. Instead, the placement of the first coefficient(s) of each still image is determined largely (if not exclusively) by the quantity of bits employed to encode preceding still image(s) by the entropy encoding. Also, the value of each coefficient is typically specified as a difference from the value of the preceding coefficient extending all the way back to the very first coefficient of the very first still image. Thus, finding the location of the first coefficient(s) of a particular still image and interpreting the values of the coefficients of that particular still image requires accessing and decoding coefficients starting at the beginning of the image bitstream with the very first coefficient of the very first image, and progressing onward until the coefficients of the particular image are reached.
The requirement of such sequential access and decoding can require considerable processing and/or storage resources. Further, as cameras with higher resolutions, storage media with higher capacities and networks with higher data transfer rates have all become more commonplace, the quantity of still images stored in such image bitstreams and the size of each of those still images have both continued to increase. As a result, such image bitstreams have continued to become ever larger, thereby exacerbating the already considerable processing and/or storage resources required simply to retrieve a single still image from within such image bitstreams.